package entidades;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;

@Entity
@SequenceGenerator(name="curso_id",sequenceName="curso_seq", allocationSize=1)
public class Curso {
	
	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="curso_id")
	private long id;
	
	@Column(nullable=false, length=100)
	private String nome;
	
	@Column(nullable=false)
	private String tipo;
	
	@OneToMany(mappedBy="curso")
	private List<Aluno> alunos;
	
	@ManyToMany
	@JoinTable(name="Curso_Prof",joinColumns=@JoinColumn(name="Curso_id"),inverseJoinColumns=@JoinColumn(name="Prof_id"))
	private List<Professor> professores;
	
	@OneToMany(mappedBy="curso")
	private List<Disciplina> disciplinas;
	
	public Curso() {
		super();
	}
	
	public Curso(long id) {
		super();
		this.id = id;
	}
	
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public List<Aluno> getAlunos() {
		return alunos;
	}

	public void setAlunos(List<Aluno> alunos) {
		this.alunos = alunos;
	}

	public List<Professor> getProfessores() {
		return professores;
	}

	public void setProfessores(List<Professor> professores) {
		this.professores = professores;
	}

	public List<Disciplina> getDisciplinas() {
		return disciplinas;
	}

	public void setDisciplinas(List<Disciplina> disciplinas) {
		this.disciplinas = disciplinas;
	}
	
	
	
	
}
